home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs03.d81 / coproc.prg (.txt) < prev    next >
Commodore BASIC  |  2009-10-10  |  7KB  |  168 lines

  1. 5 POKE56,160:CLR:GOTO2007
  2. 7 Q$=CHR$(34):E=56576:V=53248
  3. 9 PRINT"[147][142]PRESS D FOR DOCUMENTATION."
  4. 10 PRINT"PRESS C FOR CALCULATION."
  5. 12 GETA$:IFA$="C"THENPRINT"[147]":GOTO17
  6. 13 IFA$="D"THENGOSUB1000:GOTO9
  7. 14 IFA$="R"THENGOSUB200:GOTO9
  8. 15 GOTO12
  9. 16 PRINT"[147]?DEVICE";D;"NOT PRESENT":CLOSE8
  10. 17 PRINT"ENTER DISK DRIVE DEVICE NUMBER."
  11. 20 PRINT"(ENTER 0 TO EXIT.)"
  12. 22 PRINT"  8[145]":INPUTD:IFD=.THENEND
  13. 25 IFD>30ORD<4ORD=15THENPRINT"ILLEGAL DEVICE NUMBER":GOTO17
  14. 27 POKE183,6:POKE184,8:POKE185,8:POKE186,D:POKE187,52:POKE188,3:POKE820,38
  15. 28 POKE824,44:POKE825,85
  16. 30 POKE821,83:POKE822,81:POKE823,82:SYS65472:IFPEEK(783)AND1THEN16
  17. 31 CLOSE8:OPEN15,D,15:GOSUB900:IFA<20THEN40
  18. 32 IFA=62ORA=64THEN400
  19. 33 CLOSE15:GOTO17
  20. 40 FORI=.TO67:READY:POKE828+I,Y:NEXT
  21. 45 POKE183,120:POKE187,255:POKE188,198
  22. 50 PRINT#15,"&SQR":POKEE,7:PRINT"[147]"
  23. 65 F=.:PRINT"ENTER INTEGER FROM 1 TO 99 FOR COMPUTER."
  24. 66 PRINT"(PRESS RETURN FOR NO NUMBER.)"
  25. 68 PRINT"(ENTER R TO RESET DISK DRIVE.)"
  26. 70 N$="":PRINT:INPUTN$:IFN$="R"THENGOSUB200:GOTO45
  27. 71 N=VAL(N$):IFN>99THEN70
  28. 72 IFN<1THENF=1:GOTO77
  29. 75 POKE140,N
  30. 77 PRINT"ENTER INTEGER FROM 1 TO 99 FOR DOS."
  31. 78 PRINT"(PRESS RETURN FOR NO NUMBER.)"
  32. 80 N=.:PRINT:INPUTN:IFN>99THEN80
  33. 82 IFN<1THENIFFTHEN100
  34. 83 PRINT"[147]CALCULATING..."
  35. 84 IFN=>1THENPOKE888,N:SYS49675
  36. 85 IFN<1THENSYS49693:GOTO65
  37. 90 IFFTHENSYS49586:GOTO65
  38. 95 SYS49152:GOTO65
  39. 100 GOSUB200:CLOSE15:END
  40. 200 PRINT"[147]JUST A SECOND PLEASE..."
  41. 210 PRINT#15,"U:"
  42. 220 FORI=1TO3000:NEXT
  43. 230 OPEN8,D,8,"&SQR":CLOSE8:RETURN
  44. 400 PRINT"[147]THERE IS NO USR FILE NAMED ";Q$;"&SQR";Q$
  45. 410 PRINT"ON DISK.  PRESS C TO CREATE SUCH A FILE."
  46. 420 PRINT"OR PRESS X TO EXIT."
  47. 430 GETA$:IFA$="C"THEN460
  48. 440 IFA$="X"THENEND
  49. 450 GOTO430
  50. 460 OPEN8,D,8,"0:&SQR,U,W"
  51. 470 FORI=49701TO50125:PRINT#8,CHR$(PEEK(I));:NEXT
  52. 480 CLOSE8:PRINT"[147]":GOTO40
  53. 500 DATA17,17,83,81,82,32,40,1,1,41,32
  54. 510 DATA91,70,82,79,77,32,67,79,77,80
  55. 520 DATA85,84,69,82,93,32,61,13,13,0
  56. 530 DATA17,17,83,81,82,32,40,1,1,41,32
  57. 540 DATA91,70,82,79,77,32,68,79,83,93
  58. 550 DATA32,61,13,13,0,85,52,58,1,0
  59. 560 DATA77,45,82,0,3,120
  60. 900 INPUT#15,A,B$,C,Y
  61. 910 IFA<20ORA=62ORA=64THENRETURN
  62. 920 PRINT:PRINTA:PRINT:PRINTB$:PRINT:PRINTC,Y
  63. 930 RETURN
  64. 1000 Q$=CHR$(34):PRINT"[147]PRESS S TO PRINT TO SCREEN."
  65. 1010 PRINT"PRESS P TO PRINT TO PRINTER."
  66. 1020 GETB$:IFB$="P"THENOPEN4,4,7:CMD4:GOTO1050
  67. 1030 IFB$="S"THEN1050
  68. 1040 GOTO1020
  69. 1050 POKEV+24,22:PRINT"[147]";
  70. 1060 PRINT"[212]HIS FILE DEMONSTRATES THE USE OF THE"
  71. 1070 PRINT"6502 [205][208][213] IN THE 1541 DRIVE AS A MATH"
  72. 1080 PRINT"COPROCESSOR.  [193]N [205][204] ROUTINE IN THE"
  73. 1090 PRINT"COMPUTER CALCULATES THE SQUARE ROOT OF"
  74. 1100 PRINT"AN INTEGER (FROM 1 TO 99) TO 119"
  75. 1110 PRINT"SIGNIFICANT FIGURES.  [193] SIMILAR ROUTINE"
  76. 1120 PRINT"IS [211][193][214][197]D TO DISK IN A FILE NAMED"
  77. 1130 PRINTQ$;"&[211][209][210]";Q$;".  [212]HE [196][207][211] AMPERSAND COMMAND"
  78. 1140 PRINT"IS THEN CALLED TO LOAD THE FILE INTO A"
  79. 1150 PRINT"SPECIFIED [196][207][211] BUFFER AND EXECUTE THE"
  80. 1160 PRINT"6502 ROUTINE AT THE FIRST BYTE.  [201]N"
  81. 1165 IFB$="P"THEN1190
  82. 1170 PRINT"             [208][210][197][211][211] [210][197][212][213][210][206]."
  83. 1180 GETA$:IFA$<>CHR$(13)THEN1180
  84. 1190 PRINT"[147]THIS APPLICATION, WE ARE NOT YET READY"
  85. 1200 PRINT"FOR THE ROUTINE, SO THE FIRST BYTE IS A"
  86. 1210 PRINT"DUMMY ([210][212][211]).  [215]HEN WE WANT THE [196][207][211] TO"
  87. 1220 PRINT"CALCULATE, WE SEND A ";Q$;"[213]4:;[195][200][210]$([206])";Q$;" OVER"
  88. 1230 PRINT"THE COMMAND CHANNEL (15), WHERE [206] IS"
  89. 1240 PRINT"THE ARGUMENT OF [211][209][210].  [212]HE [213]4 DOES A [196][207][211]"
  90. 1250 PRINT"[202][211][210] TO $0503 AND PULLS THE ARGUMENT"
  91. 1260 PRINT"FROM THE COMMAND BUFFER ($0203).  [212]HE"
  92. 1270 PRINT"ROUTINE RETURNS 120 CHARACTERS IN"
  93. 1280 PRINT"($0300 TO $0377).  [212]HEY CAN BE FETCHED"
  94. 1290 PRINT"WITH A MEMORY READ ([205]-[210]).  [201]N THIS"
  95. 1295 IFB$="P"THEN1320
  96. 1300 PRINT"             [208][210][197][211][211] [210][197][212][213][210][206]."
  97. 1310 GETA$:IFA$<>CHR$(13)THEN1310
  98. 1320 PRINT"[147]PROGRAM, THIS IS DONE IN [205][204].  [194]UT AS"
  99. 1330 PRINT"LONG AS THE ";Q$;"&[211][209][210]";Q$;" IS ON DISK, YOU CAN"
  100. 1340 PRINT"USE IT FOR [211][209][210]([206]) BY RUNNING THE"
  101. 1350 PRINT"FOLLOWING [194][193][211][201][195] PROGRAM:"
  102. 1360 PRINT"10 [207][208][197][206]15,8,15,";Q$;"&[211][209][210]";Q$
  103. 1370 PRINT"20 [201][206][208][213][212][206]:[208][210][201][206][212]#15,";Q$;"[213]4:";Q$;";[195][200][210]$([206])"
  104. 1380 PRINT"30 [197]=56576:[208][207][203][197][197],7"
  105. 1390 PRINT"40 [201][198][208][197][197][203]([197])[193][206][196]128[212][200][197][206]40"
  106. 1400 PRINT"50 [208][210][201][206][212]#15,";Q$;"[205]-[210]";Q$;";[195][200][210]$(0);[195][200][210]$(3);[195][200][210]$(1";
  107. 1410 PRINT"20);"
  108. 1420 PRINT"60 [198][207][210][201]=1[212][207]120:[199][197][212]#15,[193]$:[208][210][201][206][212][193]$;:[206][197][216][212]"
  109. 1425 IFB$="P"THEN1450
  110. 1430 PRINT"             [208][210][197][211][211] [210][197][212][213][210][206]."
  111. 1440 GETA$:IFA$<>CHR$(13)THEN1440
  112. 1450 PRINT"[147]70 [208][210][201][206][212]#15,";Q$;"[213]:";Q$"
  113. 1455 [153]"80 ASC(null)(null)RIGHT$=1(null)(null)3000:(null)VAL(null)(null):LEN(null)(null)(null)VAL15"
  114. 1460 [153]"(null)PON (null)(null)(null)NING ";Q$;"LEN(null)(null)(null)(null)LEN.PEEKRIGHT$(null)";Q$;", IF YOU"
  115. 1470 [153]"SELECT LENATN(null)LEN(null)(null)ATN(null)RIGHT$(null)(null), THE DISK WILL BE"
  116. 1480 [153]"SCANNED FOR A (null)(null)(null) FILE NAMED ";Q$;"&(null)(null)(null)";Q$;"."
  117. 1490 [153]"RIGHT$F IT IS NOT FOUND, YOU ARE GIVEN A"
  118. 1500 [153]"CHANCE TO CREATE ONE.  (null)HEN YOU ARE"
  119. 1510 [153]"PROMPTED FOR NUMBERS TO BE PROCESSED BY"
  120. 1520 [153]"THE COMPUTER AND BY STR$(null)(null).  (null)OU MAY PRESS"
  121. 1530 [153]"(null)VAL(null)(null)(null)(null) FOR (null)(null) (null)(null)(null)PEEKVAL(null).  RIGHT$F YOU DO SO FOR"
  122. 1545 [139]B$[178]"P"[167]1570
  123. 1550 [153]"             (null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null)."
  124. 1560 [161]A$:[139]A$[179][177][199](13)[167]1560
  125. 1570 [153]"LOADBOTH COMPUTER AND STR$(null)(null), THE PROGRAM ENDS."
  126. 1575 [153]"(null)HE STR$(null)(null) ARGUMENT IS SENT TO THE DRIVE"
  127. 1580 [153]"AND THE COMPUTER NUMBER IS PROCESSED BY"
  128. 1590 [153]"THE COMPUTER.  (null)HEN THE COMPUTER PRINTS"
  129. 1600 [153]"THE RESULT TO THE SCREEN, IT THEN WAITS"
  130. 1610 [153]"FOR THE SIGNAL FROM STR$(null)(null) (BIT 7 OF $STR$STR$00"
  131. 1620 [153]"CLEAR) TO READ THE STR$(null)(null) RESULT FROM THE"
  132. 1630 [153]"DRIVE AND PRINT IT TO THE SCREEN."
  133. 1632 [153]"ATNLL FIVE STR$(null)(null) BUFFERS ARE USED, AS WELL"
  134. 1634 [153]"AS SEVERAL REGISTERS IN ZERO PAGE"
  135. 1635 [153]"MEMORY.  ATNS A RESULT, IT IS NECESSARY TO"
  136. 1636 [139]B$[178]"P"[167]1639
  137. 1637 [153]"             (null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null)."
  138. 1638 [161]A$:[139]A$[179][177][199](13)[167]1638
  139. 1639 [153]"LOADRESET THE DRIVE BEFORE RESUMING NORMAL"
  140. 1640 [153]"DRIVE OPERATION.  (null)HIS IS DONE BY THE"
  141. 1642 [153]"PROGRAM ON PROPER EXIT.  PEEKUT IF YOU"
  142. 1645 [153]"NOTICE ODD RESULTS, YOU MAY SELECT (null) FOR"
  143. 1646 [153]"RESET AT THE COMPUTER NUMBER PROMPT."
  144. 1647 [153]"(null)OW THE PURPOSE OF THIS FILE IS TO"
  145. 1650 [153]"DEMONSTRATE THE TECHNIQUE OF USING THE"
  146. 1655 [153]"STR$(null)(null) (null)(null)(null) AS A COPROCESSOR.  (null)HE VALUE OF"
  147. 1660 [153]"CALCULATING (null)(null)(null) ((null))CLOSETO 119 SIGNIFICANT"
  148. 1662 [153]"FIGURES IS MOOT.  PEEKUT THE 1541 CAN BE"
  149. 1665 [139]B$[178]"P"[167]1720
  150. 1670 [153]"             (null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null)."
  151. 1680 [161]A$:[139]A$[179][177][199](13)[167]1680
  152. 1720 [153]"LOADGIVEN ANY ONE OF 27 DIFFERENT DEVICE"
  153. 1725 [153]"NUMBERS (4 TO 30).  (null)O ONE LEN-64 AND 27"
  154. 1730 [153]"1541'S CAN BE ALL WORKING ON DIFFERENT"
  155. 1740 [153]"PARTS OF A PROBLEM AT THE SAME TIME."
  156. 1750 [153]:[153]"(null)ATN(null)(null) ATNPEEK(null)(null)(null) (null)(null)(null)(null)RIGHT$-(null)ATN(null)(null)RIGHT$(null)CHR$!"
  157. 1755 [139]B$[178]"P"[167][152]4:[160]4:[142]
  158. 1760 [153]"      (null)(null)VAL(null)(null) (null)VAL(null)(null)(null)(null) ASC(null)(null) (null)ATNRIGHT$(null) (null)VAL(null)(null)."
  159. 1770 [153]"         ((null)(null) (null)(null)VAL(null)(null) (null) (null)(null) VAL(null)RIGHT$(null).)"
  160. 1780 [161]A$:[139]A$[178][199](13)[167][142]
  161. 1790 [139]A$[178]"X"[176]A$[178]"(null)"[167][153]"LOADRETURN";:[128]
  162. 1800 [137]1780
  163. 2007 [153]"LOADONE MOMENT PLEASE..."
  164. 2010 P[178][194](45)[170]256[172][194](46)[171]1
  165. 2015 P[178]P[171]974
  166. 2020 [129]I[178].[164]974:[151]49152[170]I,[194](P[170]I):[130]
  167. 2025 [151]2064,48:[137]7
  168.